// src/network/graphRequest.js
// 这是一个模拟文件。在实际项目中，您需要配置您的后端API请求。
// 例如，使用 Axios:
// import axios from 'axios';
// const instance = axios.create({ baseURL: '/api' }); // 配置Vite代理

export const queryNodeByName = async (node_name, level) => {
  console.log(`Mock: Querying node by name: ${node_name}, level: ${level}`)
  await new Promise((resolve) => setTimeout(resolve, 500)) // 模拟网络延迟

  // 模拟返回G6所需的数据格式
  // 实际项目中这里会是您的API调用
  // return instance.get('/graph/queryByName', { params: { name: node_name, level: level } });

  if (node_name === '采煤机') {
    return {
      data: {
        nodes: [
          { id: '采煤机', label: '采煤机', style: { fill: '#00cac7' } }, // 突出显示中心节点
          { id: '截割装置', label: '截割装置' },
          { id: '行走装置', label: '行走装置' },
          { id: '运输装置', label: '运输装置' },
          { id: '电控系统', label: '电控系统' },
          { id: '电动机', label: '电动机' },
          { id: '传感器', label: '传感器' },
          { id: '皮带机', label: '皮带机' },
          { id: '煤矿', label: '煤矿' },
        ],
        edges: [
          { source: '采煤机', target: '截割装置', label: '组成部分' },
          { source: '采煤机', target: '行走装置', label: '组成部分' },
          { source: '采煤机', target: '运输装置', label: '组成部分' },
          { source: '采煤机', target: '电控系统', label: '组成部分' },
          { source: '截割装置', target: '电动机', label: '驱动' },
          { source: '运输装置', target: '皮带机', label: '包含' },
          { source: '电控系统', target: '传感器', label: '包含' },
          { source: '采煤机', target: '煤矿', label: '用于' },
        ],
      },
    }
  } else if (node_name === '电动机') {
    return {
      data: {
        nodes: [
          { id: '电动机', label: '电动机', style: { fill: '#00cac7' } },
          { id: '采煤机', label: '采煤机' },
          { id: '风机', label: '风机' },
          { id: '水泵', label: '水泵' },
        ],
        edges: [
          { source: '电动机', target: '采煤机', label: '用于' },
          { source: '电动机', target: '风机', label: '用于' },
          { source: '电动机', target: '水泵', label: '用于' },
        ],
      },
    }
  } else if (node_name === '传感器') {
    return {
      data: {
        nodes: [
          { id: '传感器', label: '传感器', style: { fill: '#00cac7' } },
          { id: '电控系统', label: '电控系统' },
          { id: '温度传感器', label: '温度传感器' },
          { id: '压力传感器', label: '压力传感器' },
        ],
        edges: [
          { source: '传感器', target: '电控系统', label: '属于' },
          { source: '传感器', target: '温度传感器', label: '类型' },
          { source: '传感器', target: '压力传感器', label: '类型' },
        ],
      },
    }
  }
  // 默认返回一个只包含查询节点的图
  return {
    data: {
      nodes: [{ id: node_name, label: node_name, style: { fill: '#00cac7' } }],
      edges: [],
    },
  }
}

export const queryNodeList = async (queryString) => {
  console.log('Mock: Querying node list for:', queryString)
  await new Promise((resolve) => setTimeout(resolve, 200)) // 模拟网络延迟
  // 实际项目中这里会是您的API调用
  // return instance.get('/graph/queryList', { params: { keyword: queryString } });

  const mockNodes = [
    { value: '采煤机' },
    { value: '电动机' },
    { value: '传感器' },
    { value: '皮带机' },
    { value: '煤矿' },
    { value: '风机' },
    { value: '水泵' },
    { value: '截割装置' },
    { value: '行走装置' },
    { value: '运输装置' },
    { value: '电控系统' },
    { value: '温度传感器' },
    { value: '压力传感器' },
  ]
  return {
    data: queryString ? mockNodes.filter((node) => node.value.includes(queryString)) : mockNodes,
  }
}
